Skip to content

feat: configuration and setup#14

Merged
musale merged 8 commits into
mainfrom
feat/config-setup
Aug 21, 2025
Merged

feat: configuration and setup#14
musale merged 8 commits into
mainfrom
feat/config-setup

Conversation

@musale

@musale musale commented Aug 21, 2025

Copy link
Copy Markdown
Contributor

This pull request introduces configuration and error handling infrastructure to the GavaConnect SDK, as well as SDK versioning and some packaging improvements. The most significant changes are the addition of new modules for configuration and error classes, and the exposure of these new components in the SDK's public API.

New configuration and error handling modules:

  • Added a new config.py module that defines SDKConfig and RetryPolicy dataclasses for SDK configuration, including timeouts and retry policies. (gavaconnect/config.py)
  • Added a new errors.py module with custom exception classes: SDKError, TransportError, SerializationError, APIError, and RateLimitError for structured error handling throughout the SDK. (gavaconnect/errors.py)

SDK versioning and public API:

  • Introduced a dedicated _version.py module with a __version__ string, and exposed this version in the SDK's public API. (gavaconnect/_version.py, gavaconnect/__init__.py) [1] [2]
  • Updated the __all__ list in gavaconnect/__init__.py to include the new configuration and error classes, as well as the version string, making them available to SDK consumers. (gavaconnect/__init__.py)

Packaging improvements:

  • Added py.typed to the package data in pyproject.toml to indicate type hint support for consumers. (pyproject.toml)
  • Updated Ruff linter configuration in pyproject.toml to improve code quality checks. (pyproject.toml)

@musale musale requested a review from Copilot August 21, 2025 12:18
@codecov

codecov Bot commented Aug 21, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR introduces foundational infrastructure for the GavaConnect SDK including configuration management, structured error handling, and SDK versioning to establish a more robust and maintainable codebase.

  • Added configuration classes (SDKConfig, RetryPolicy) for managing SDK settings like timeouts and retry behavior
  • Introduced a comprehensive error hierarchy with custom exception classes for different failure scenarios
  • Established SDK versioning with a dedicated version module and exposed it in the public API

Reviewed Changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
pyproject.toml Added type hint support marker and enhanced linting configuration
gavaconnect/errors.py New error hierarchy with custom exception classes for structured error handling
gavaconnect/config.py Configuration dataclasses for SDK settings including timeouts and retry policies
gavaconnect/_version.py Dedicated version module with release-please integration
gavaconnect/init.py Updated public API exports to include new configuration, error classes, and version
Comments suppressed due to low confidence (1)

gavaconnect/errors.py:1

  • The import statement references SerializationError class which is defined in the errors module but is missing from this import statement and the __all__ list in __init__.py.
"""

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread gavaconnect/__init__.py Outdated
Comment thread pyproject.toml Outdated
@musale musale merged commit dadc42e into main Aug 21, 2025
4 checks passed
@musale musale deleted the feat/config-setup branch August 21, 2025 12:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants